package com.foreknow.demo10;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

/**
 * 常用方法
 *
 * ResultSet	executeQuery(String sql) 执行给定的SQL语句，该语句返回单个 ResultSet对象。
 *
 * int	executeUpdate(String sql)
 * 执行给定的SQL语句，这可能是 INSERT ， UPDATE ，或 DELETE语句，或者不返回任何内容，如SQL DDL语句的SQL语句。
 */
public class JDBCUtil {
    public static void main(String[] args) {

        try {
            //1. 加载驱动程序
            Class.forName("com.mysql.jdbc.Driver");
            //2. 获取连接(Connection) 注意：别忘了改数据库名和密码，否则无法连接
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/basic14","root","123456");
            //3. 获取到interface Statement 用于执行静态SQL语句并返回其生成的结果的对象。
            Statement stmt = conn.createStatement();
            //ResultSet结果集：作用是用来保存查询到的数据
            ResultSet rs = stmt.executeQuery("select * from admin");
            //遍历结果集获取到结果集中的数据
            List<Admin> list = new ArrayList<>();
            while (rs.next()) {
                //获取到当前行的每一列数据
                int id = rs.getInt("ID");
                String name = rs.getString("NAME");
                String pass = rs.getString("PASS");

                //将获取到的数据保存到对象中
                Admin admin = new Admin();
                admin.setId(id);
                admin.setName(name);
                admin.setPass(pass);

                //将对象保存到List集合中
                list.add(admin);
            }
            //关闭资源
            rs.close();
            stmt.close();
            conn.close();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
